layui.define(['element', 'jquery', 'setter', 'common'], function (exports) {
    var $ = layui.jquery,
        element = layui.element,
        config = layui.setter,
        common = layui.common;
    // 重置容器
    common.container = document;
    var P = {}

    // 扩展监听事件
    // 页面固定事件
    $.extend(true, layui.common.events, {
        // 点击事件
        click: {
            // 向左滚动窗口
            leftTab: function () {
                common.rollTab('left');
                return false;
            },
            // 向右滚动窗口
            rightTab: function () {
                common.rollTab('right');
                return false;
            },
            // 刷新窗口
            refreshWindow: function () {
                var currIFrame = $('.layui-tab[lay-filter="' + config.tabCardFilter + '"] > .layui-tab-content > .layui-tab-item.layui-show > iframe');
                var find = '.layui-tab[lay-filter="' + config.tabCardFilter + '"] > .layui-tab-title > .layui-this';
                var loadText = '<span>加载中...</span>';
                var id = $(find).attr('lay-id');
                if (currIFrame.length > 0) {
                    currIFrame[0].contentWindow.window.location.reload();
                    common.changeTitle(loadText, id); // 加载中
                    $(currIFrame[0]).load(function () {
                        var id = $(this).attr('tab-id');
                        // 改变标题
                        common.pullTitle(this.contentWindow.document, id);
                    });
                }
                return false;
            },
            // 关闭本窗口
            closeThisTabs: function () {
                common.tab.deleteThis(config.tabCardFilter);
                return false;
            },
            // 关闭其他并不包含第一个窗口
            closeOtherTabs: function () {
                common.tab.deleteOther(config.tabCardFilter, ':first');
                return false;
            },
            // 关闭所有并不包含第一个窗口
            closeAllTabs: function () {
                common.tab.deleteAll(config.tabCardFilter, ':first');
                return false;
            },
            // 左侧导航滑动
            shrinkLeftNav: function () {
                var nav_obj = $('.left-nav .layui-nav'),
                    content_obj = $('.page-content'),
                    left = parseInt(nav_obj.css('left')),
                    nav_width = nav_obj.outerWidth();
                if (left < 0) {
                    // 展开
                    nav_obj.animate({'left': 0});
                    content_obj.animate({'left': nav_width + 'px'});
                } else {
                    // 收缩
                    nav_obj.animate({'left': -nav_width + "px"});
                    content_obj.animate({'left': 0});
                }
                return false;
            },
            // 新建窗口
            addWindow: function () {
                // 快捷方法
                common.addWindow(this, element);
                FrameWH();
                return false;
            }
        }
    });
    // 窗口下拉选项点击监听
    element.on('nav(icy8-tabs-select)', function (data) {
        $(this).parent().removeClass('layui-this'); // 去除当前选中样式
    });
    element.on('nav(icy8-channel)', function (data) {
    });

    // 记录当前标签页
    element.on('tab(' + config.tabCardFilter + ')', function (data) {
        var id = $(this).attr('lay-id');
        var tab = common.tabCache.get(id);
        if (tab) {
            common.tabCache.set(id, {is_this: true});
        }else {
            var url = $('iframe[tab-id="' + id + '"]').attr('src');
            common.tabCache.set(id, {id:id,url:url,is_this:true});
        }
    });
    // 删除标签页
    element.on('tabDelete(' + config.tabCardFilter + ')', function (data) {
        var id = $(this).parent().attr('lay-id');
        var tab = common.tabCache.get(id);
        if (tab) {
            common.tabCache.del(id);
        }
    });
    var tabs = common.tabCache.get();
    $.each(tabs, function (index, elem) {
        common.addWindow(elem, element);
    });

    function FrameWH() {
        // 内容框架高度计算
        var offset = $('.page-content .tab-list .layui-tab-content').offset();
        var h = $(window).height() - offset.top;
        $("iframe.icy8Iframe").css("height", h + "px");
    }

    FrameWH();
    $(window).resize(function () {
        FrameWH();
    });
    exports('admin', P); // 输出模块
});